home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / SCSL / dlabrd.z / dlabrd
Encoding:
Text File  |  2002-10-03  |  7.4 KB  |  199 lines

  1.  
  2.  
  3.  
  4. DDDDLLLLAAAABBBBRRRRDDDD((((3333SSSS))))                                                          DDDDLLLLAAAABBBBRRRRDDDD((((3333SSSS))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DLABRD - reduce the first NB rows and columns of a real general m by n
  10.      matrix A to upper or lower bidiagonal form by an orthogonal
  11.      transformation Q' * A * P, and returns the matrices X and Y which are
  12.      needed to apply the transformation to the unreduced part of A
  13.  
  14. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  15.      SUBROUTINE DLABRD( M, N, NB, A, LDA, D, E, TAUQ, TAUP, X, LDX, Y, LDY )
  16.  
  17.          INTEGER        LDA, LDX, LDY, M, N, NB
  18.  
  19.          DOUBLE         PRECISION A( LDA, * ), D( * ), E( * ), TAUP( * ),
  20.                         TAUQ( * ), X( LDX, * ), Y( LDY, * )
  21.  
  22. IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN
  23.      These routines are part of the SCSL Scientific Library and can be loaded
  24.      using either the -lscs or the -lscs_mp option.  The -lscs_mp option
  25.      directs the linker to use the multi-processor version of the library.
  26.  
  27.      When linking to SCSL with -lscs or -lscs_mp, the default integer size is
  28.      4 bytes (32 bits). Another version of SCSL is available in which integers
  29.      are 8 bytes (64 bits).  This version allows the user access to larger
  30.      memory sizes and helps when porting legacy Cray codes.  It can be loaded
  31.      by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
  32.      only one of the two versions; 4-byte integer and 8-byte integer library
  33.      calls cannot be mixed.
  34.  
  35. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  36.      DLABRD reduces the first NB rows and columns of a real general m by n
  37.      matrix A to upper or lower bidiagonal form by an orthogonal
  38.      transformation Q' * A * P, and returns the matrices X and Y which are
  39.      needed to apply the transformation to the unreduced part of A. If m >= n,
  40.      A is reduced to upper bidiagonal form; if m < n, to lower bidiagonal
  41.      form.
  42.  
  43.      This is an auxiliary routine called by DGEBRD
  44.  
  45.  
  46. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  47.      M       (input) INTEGER
  48.              The number of rows in the matrix A.
  49.  
  50.      N       (input) INTEGER
  51.              The number of columns in the matrix A.
  52.  
  53.      NB      (input) INTEGER
  54.              The number of leading rows and columns of A to be reduced.
  55.  
  56.      A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
  57.              On entry, the m by n general matrix to be reduced.  On exit, the
  58.              first NB rows and columns of the matrix are overwritten; the rest
  59.              of the array is unchanged.  If m >= n, elements on and below the
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDLLLLAAAABBBBRRRRDDDD((((3333SSSS))))                                                          DDDDLLLLAAAABBBBRRRRDDDD((((3333SSSS))))
  71.  
  72.  
  73.  
  74.              diagonal in the first NB columns, with the array TAUQ, represent
  75.              the orthogonal matrix Q as a product of elementary reflectors;
  76.              and elements above the diagonal in the first NB rows, with the
  77.              array TAUP, represent the orthogonal matrix P as a product of
  78.              elementary reflectors.  If m < n, elements below the diagonal in
  79.              the first NB columns, with the array TAUQ, represent the
  80.              orthogonal matrix Q as a product of elementary reflectors, and
  81.              elements on and above the diagonal in the first NB rows, with the
  82.              array TAUP, represent the orthogonal matrix P as a product of
  83.              elementary reflectors.  See Further Details.  LDA     (input)
  84.              INTEGER The leading dimension of the array A.  LDA >= max(1,M).
  85.  
  86.      D       (output) DOUBLE PRECISION array, dimension (NB)
  87.              The diagonal elements of the first NB rows and columns of the
  88.              reduced matrix.  D(i) = A(i,i).
  89.  
  90.      E       (output) DOUBLE PRECISION array, dimension (NB)
  91.              The off-diagonal elements of the first NB rows and columns of the
  92.              reduced matrix.
  93.  
  94.      TAUQ    (output) DOUBLE PRECISION array dimension (NB)
  95.              The scalar factors of the elementary reflectors which represent
  96.              the orthogonal matrix Q. See Further Details.  TAUP    (output)
  97.              DOUBLE PRECISION array, dimension (NB) The scalar factors of the
  98.              elementary reflectors which represent the orthogonal matrix P.
  99.              See Further Details.  X       (output) DOUBLE PRECISION array,
  100.              dimension (LDX,NB) The m-by-nb matrix X required to update the
  101.              unreduced part of A.
  102.  
  103.      LDX     (input) INTEGER
  104.              The leading dimension of the array X. LDX >= M.
  105.  
  106.      Y       (output) DOUBLE PRECISION array, dimension (LDY,NB)
  107.              The n-by-nb matrix Y required to update the unreduced part of A.
  108.  
  109.      LDY     (output) INTEGER
  110.              The leading dimension of the array Y. LDY >= N.
  111.  
  112. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  113.      The matrices Q and P are represented as products of elementary
  114.      reflectors:
  115.  
  116.         Q = H(1) H(2) . . . H(nb)  and  P = G(1) G(2) . . . G(nb)
  117.  
  118.      Each H(i) and G(i) has the form:
  119.  
  120.         H(i) = I - tauq * v * v'  and G(i) = I - taup * u * u'
  121.  
  122.      where tauq and taup are real scalars, and v and u are real vectors.
  123.  
  124.      If m >= n, v(1:i-1) = 0, v(i) = 1, and v(i:m) is stored on exit in
  125.      A(i:m,i); u(1:i) = 0, u(i+1) = 1, and u(i+1:n) is stored on exit in
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. DDDDLLLLAAAABBBBRRRRDDDD((((3333SSSS))))                                                          DDDDLLLLAAAABBBBRRRRDDDD((((3333SSSS))))
  137.  
  138.  
  139.  
  140.      A(i,i+1:n); tauq is stored in TAUQ(i) and taup in TAUP(i).
  141.  
  142.      If m < n, v(1:i) = 0, v(i+1) = 1, and v(i+1:m) is stored on exit in
  143.      A(i+2:m,i); u(1:i-1) = 0, u(i) = 1, and u(i:n) is stored on exit in
  144.      A(i,i+1:n); tauq is stored in TAUQ(i) and taup in TAUP(i).
  145.  
  146.      The elements of the vectors v and u together form the m-by-nb matrix V
  147.      and the nb-by-n matrix U' which are needed, with X and Y, to apply the
  148.      transformation to the unreduced part of the matrix, using a block update
  149.      of the form:  A := A - V*Y' - X*U'.
  150.  
  151.      The contents of A on exit are illustrated by the following examples with
  152.      nb = 2:
  153.  
  154.      m = 6 and n = 5 (m > n):          m = 5 and n = 6 (m < n):
  155.  
  156.        (  1   1   u1  u1  u1 )           (  1   u1  u1  u1  u1  u1 )
  157.        (  v1  1   1   u2  u2 )           (  1   1   u2  u2  u2  u2 )
  158.        (  v1  v2  a   a   a  )           (  v1  1   a   a   a   a  )
  159.        (  v1  v2  a   a   a  )           (  v1  v2  a   a   a   a  )
  160.        (  v1  v2  a   a   a  )           (  v1  v2  a   a   a   a  )
  161.        (  v1  v2  a   a   a  )
  162.  
  163.      where a denotes an element of the original matrix which is unchanged, vi
  164.      denotes an element of the vector defining H(i), and ui an element of the
  165.      vector defining G(i).
  166.  
  167.  
  168. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  169.      INTRO_LAPACK(3S), INTRO_SCSL(3S)
  170.  
  171.      This man page is available only online.
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.